/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package caylus.Model;

import caylus.Enum.PhaseConstructionChateau;
import caylus.Enum.PhaseDuJeu;
import caylus.GUI.GeneralSettings;
import java.io.File;
import java.io.FileInputStream;
import java.io.ObjectInputStream;
import java.util.ArrayList;
import javax.swing.ImageIcon;
import javax.swing.JOptionPane;

/**
 *
 * @author sridi mahdi
 */
public class Load {

   public          GeneralSettings            GeneralsSettings_Recuperé            ;
   public          Joueur                     JoueurCourant_Recuperé               ;
   public          ArrayList<Joueur>          ListeJoueur_Récuperé                 ;
   public          Chateau                    Chateau_Recuperé                     ;
   public          PhaseDuJeu                 PhaseDuJeu_Recuperé                  ;
   public          PhaseConstructionChateau   PhaseConstructionChateau_Recuperé    ;
   public          Bailli                     Bailli_Recuperé                      ;
   public          Prevot                     Prevot_Recuperé                      ;


   public Load (String pChemin)
   {
       chargerPartie(pChemin);
   }

    public void erreur()
    {
        JOptionPane.showMessageDialog(null,"aucune partie enregistrée", "erreur de chargement", 1, new ImageIcon("src/images/caylus_button_cancel.png"));
    }

     public void chargerPartie(String pChemin) //, String pCemin_Plateau , String pChemin_Generals)
    {
           File fichier= new File(pChemin);

     try
         {
            ObjectInputStream flotLecture = new ObjectInputStream (new FileInputStream(fichier));

            // premiere étape
            // recupération des elements nécessaire au chargement du Jeu
            // ca marche !les données peuvent etre récuperées sans probleme !

             System.out.println("================ 1st step ========================");

             GeneralsSettings_Recuperé           = (GeneralSettings)flotLecture.readObject();
             JoueurCourant_Recuperé              = (Joueur)flotLecture.readObject();
             ListeJoueur_Récuperé                = (ArrayList<Joueur>)flotLecture.readObject();
             Chateau_Recuperé                    = (Chateau)flotLecture.readObject();
             PhaseDuJeu_Recuperé                 = (PhaseDuJeu)flotLecture.readObject();
             PhaseConstructionChateau_Recuperé   = (PhaseConstructionChateau)flotLecture.readObject();
             Bailli_Recuperé                     = (Bailli)flotLecture.readObject();
             Prevot_Recuperé                     = (Prevot)flotLecture.readObject();

             System.out.println("================ 2nd step ========================");
             System.out.println(JoueurCourant_Recuperé.getNom());

             // Bailli_Recuperé.setPrevot(Prevot_Recuperé);
             // Prevot_Recuperé.setBailli(Bailli_Recuperé);

             // deuxieme étape
             // reconstitution du Jeu à partir des données recuperées
             // ==>



             flotLecture.close();
        }
              catch (Exception e)
        {
            System.out.println(" erreur :" +e.toString());
            erreur();
        }

    }


}